package com.ts.api.module.api.service;

import com.ts.api.exp.ApiMsgException;
import com.ts.api.module.api.entity.bo.ApiCustomPushBO;
import com.ts.api.module.product.entity.po.ProductApplyFlowPO;
import com.ts.api.module.product.entity.po.ProductPO;
import com.ts.api.module.product.entity.po.ProductPlanPO;

import java.util.Map;

/**
 *  API定制推送
 */
public interface ApiReceiveCustomPushService {

    /**
     *  定制主体->撞库业务
     *
     *  @param  apiCustomPushBO 自定义推送业务实体
     *  @return Map
     *  @throws ApiMsgException
     */
    Map<String, Object> dataExchange(ApiCustomPushBO apiCustomPushBO) throws ApiMsgException;

    /**
     *  定制主体->进件业务
     *
     *  @param  apiCustomPushBO 自定义推送业务实体
     *  @return Map
     *  @throws ApiMsgException
     */
    Map<String, Object> apply(ApiCustomPushBO apiCustomPushBO) throws ApiMsgException;

    /**
     *  唤醒进件
     *
     *  @param phoneMd5             手机号MD5
     *  @param productPO            主体实体
     *  @param productPlanPO        主体计划实体
     *  @param productApplyFlowPO   流程实体
     */
    void wakeApply(String phoneMd5, ProductPO productPO, ProductPlanPO productPlanPO, ProductApplyFlowPO productApplyFlowPO);
}
